import requests, json,easygui
import time
import random
import traceback
import easygui
from 自定义时间类 import New_time

# -----------------------------------------
def search (findNum,start,end,lis=list):
    global b
    if(start<end):
        m = (start+end)//2
        if lis[m]==findNum:
            b=m
        elif lis[m] < findNum:
            search(findNum,m+1,end,lis)
        elif lis[m] > findNum:
            search(findNum,start,m-1,lis)
    if b==-1:
        easygui.msgbox(f'您输入的数字不存在 {b}')
    else:
        easygui.msgbox(f'您输入的数字存在 索引为{b}')
# --------------------

def qui (li,p,r):
    if p<r:
        q=partion(li,p,r)
        qui(li,p,q)
        qui(li,q+1,r)
def partion(li,p,r):
    i=p-1
    for j in range(p,r):
        if li[j]<=li[r]:
            i+=1
            li[i],li[j]=li[j],li[i]
    li[i+1],li[r]=li[r],li[i+1]
    return i
# ---------------------------------------------
Ci_Shu=0
no=0
a = 'http://t.weather.sojson.com/api/weather/city/'
z=0
reply=easygui.choicebox('请选择你要执行的命令','一键三连',['天气查询','文件操作','查询时间','时间转时间戳','数组排序与查询'])
print(reply)
if reply=='天气查询':
    while True: 
        
        city = easygui.enterbox("请输入你要查询的城市：")
        
        h = open('根据自己的地址来编写\\city.json', 'rb')
        cities = json.load(h)
        city = cities.get(city)
        try:
            
            response = requests.get(a + city)
        except:
            easygui.msgbox('下次查询时请不要退出')
            break
        d = response.json()
        while z<=7:
            if(d['status'] == 200):
                easygui.msgbox((("城市：", d["cityInfo"]["parent"], d["cityInfo"]["city"]),("时间：", d["time"], d["data"]["forecast"][z]["week"]),("温度：", d["data"]["forecast"][z]["high"], d["data"]["forecast"][z]["low"]),("天气：", d["data"]["forecast"][z]["type"])))
                z=z+1
if reply=='文件操作':   
    Ci_Shu=0
    Ci_Shu=Ci_Shu+1
    username=easygui.enterbox('请输入你的用户名')
    password=(easygui.enterbox('请输入你的密码'))

    file_path = '根据自己的地址来编写\\预警.txt'
    file = open(file_path,mode='a+')

    rights=0

    e=easygui.msgbox('注册成功')
    if e==None:
        easygui.msgbox('Hey,you not this "None",OK?')
    easygui.msgbox('正在重新加载资源')
    time.sleep(random.randint(0,1))
    easygui.msgbox('开始登陆')
    while rights<=2 :
        l=easygui.passwordbox('输入用户名')

        if l==username:
            rights=rights+1
        c=easygui.passwordbox('输入密码')
        d=int(c)
        if d==password:
            rights=rights+1

        if rights==2:
            easygui.msgbox('登陆成功')
            rights=rights=1
            break
        
        else:
            no=no+1
            easygui.msgbox('登陆失败')
            if no==5:
                file.write(f'{username}')
                file.write('Login failed')
                file.close()
                no=0
        rights=0

    file_path = easygui.enterbox('请输入你要打开的文件(输入文件的完整路径)')


    file2 = open(file_path,mode='r+')
    g=(file2.read())
    easygui.msgbox(g)



    file2.close()


if reply=='查询时间':
	localtime =time.localtime(time.time())
	j=New_time.x(localtime)
	print(j)
	file.write(f'{j}\n') # 向文件写入内容
	file.close()
if reply=='时间转时间戳':
	str = easygui.enterbox('请输入时间（格式为xxxx-xx-xx xx:xx:xx）')
	stime = New_time.y(str)
	print(stime)
	file.write(f'{stime}\n') # 向文件写入内容
	file.close()
if reply=='数组排序与查询':
	lis=input('请输入一串无序的数字（每个数之间用“，”隔开）')
	lis=lis.replace(',',' ')
	try:
		lis=list(map(int,lis.split()))
		print(lis)
		a=time.time()
		qui(lis,0,len(lis)-1)
		c=time.time()
		print(c-a)
	except:
		easygui.msgbox('请不要在数字中加一些字母或奇怪字符😊')
	try:
		find_key=int(input('请输入您要查找的数字'))
		search(33,0,len(lis)-1,lis)
	except:
		easygui.msgbox('请不要在数字中加一些字母或奇怪字符😊')